<?php
/**
 * Workman/Webman 进程注册
 * - jt808-udp：UDP 接收 JT808 报文（与 TCP 无直接关联）
 * - gps-tcp：TCP 客户端，连接运营商网关，登录并接收 NDJSON，每行入队 Redis（gps:json）
 * - gps-saver：入库消费进程，从 Redis 批量入库 MySQL（Eloquent/DB）
 * - gps-watchdog：看门狗与告警，监控接收/入库的空闲情况
 */
return [
    // 注册 UDP 进程（JT808）
    'jt808-udp' => [
        'handler' => app\process\Jt808Udp::class,
        'listen'  => 'udp://0.0.0.0:' . env('UDP_PORT', 8706),  // 监听端口（可在 .env 配置 UDP_PORT）
        'count'   => (int)env('UDP_WORKERS', 0),                // 进程数（默认关闭，设置为 >0 时开启）
    ],

    // 注册 GPS TCP 客户端进程（客户端，无需 listen）
    'gps-tcp' => [
        'handler' => app\process\GpsTcp::class,                 // 进程类：长连登录，接收 NDJSON
        'count'   => (int)env('TCP_WORKERS', 1),                // 进程数（一般保持 1）
    ],

    // 注册 GPS 数据入库消费进程
    'gps-saver' => [
        'handler' => app\process\GpsSaver::class,               // 进程类：Redis→MySQL 批量写入
        'count'   => (int)env('GPS_SAVE_WORKERS', 1),           // 进程数（根据写库压力调整）
    ],

    // 看门狗与告警（可选）
    'gps-watchdog' => [
        'handler' => app\process\GpsWatchdog::class,            // 进程类：空闲阈值监控与 webhook 告警
        'count'   => (int)env('GPS_WATCH_ENABLE', 1) ? 1 : 0,   // 1 启用 / 0 关闭
    ],
];